home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 76 / XENIATGM66.iso / Indiana Jones / Indiana Jones.exe / RESOURCE / PREVIEW.GOB / cog_actor_marduk.cog < prev    next >
Text File  |  1999-11-15  |  3KB  |  119 lines

  1. # Jones 3D Cog Script
  2. #
  3. # actor_marduk.cog
  4. #
  5. # [SCHOLL]
  6. #
  7. # (C) 1999 LucasArts Entertainment Company LLC. All Rights Reserved
  8. #
  9. #    #####  Notes  #####
  10. #
  11. # ===================================================================
  12.  
  13. symbols
  14.  
  15. message        created
  16. message        timer
  17.  
  18. thing    t_Marduk    local
  19. thing    t_Indy        local 
  20.  
  21. int        n_TimerID        local
  22. vector    v_TrailPos        local
  23. vector    v_MardukPos     local
  24. vector    v_MardukVel        local
  25. vector    v_TrailVel        local
  26. vector    v_MardukLook        local
  27. thing    t_Trail            local
  28.  
  29. int            TIMER_ID_MARDUK_TRAIL=0        local
  30.  
  31. flex        MARDUK_TRAIL_DELAY=0.05                local
  32.  
  33. int        n_leftnode    local
  34. int        n_rightnode    local
  35.  
  36. template    tpl_MardukTrail=mardukTrail            local
  37.  
  38. # for engine to use
  39. template        expl=mardukBombSpr        local
  40.  
  41. end
  42.  
  43. # ===================================================================
  44.  
  45. code
  46. # ...................................................................
  47.  
  48. created:
  49.     t_Marduk = GetSenderRef();
  50.     t_Indy = GetLocalPlayerThing();
  51.     AISetSubMode(t_Marduk, 0x80000); # slow mode anim fade
  52.     SetTimerEX(MARDUK_TRAIL_DELAY, TIMER_ID_MARDUK_TRAIL, t_Marduk, 0);
  53.  
  54.     n_leftnode = GetNodeByName(t_Marduk, "wml4arm");
  55.     n_rightnode = GetNodeByName(t_Marduk, "wmr4arm");
  56.  
  57.      return;
  58.  
  59.  
  60. timer:
  61.     n_TimerID = GetSenderID();
  62.     t_Marduk = GetParam(0);
  63.  
  64.     if (n_TimerID == TIMER_ID_MARDUK_TRAIL)
  65.     {
  66.         if (!BITTEST(GetThingFlags(t_Marduk), 0x80000) && (GetThingAlpha(t_Marduk) > 0.75))
  67.         {
  68.             v_MardukPos = GetThingPos(t_Marduk);
  69.             v_MardukLook = GetThingLVec(t_Marduk);
  70.             v_MardukLook = VectorScale(v_MardukLook, 0.025);
  71.             v_TrailPos = VectorSet(0.0, 0.0, -0.05);
  72.             v_TrailPos = VectorAdd(VectorAdd(v_TrailPos, v_MardukPos), v_MardukLook);
  73.             t_Trail = CreateThingAtPos(tpl_MardukTrail, FindNewSectorFromThing(t_Marduk, v_TrailPos), v_TrailPos, '0 0 0');
  74.             if (t_Trail != -1)
  75.             {
  76.                 v_MardukVel = GetThingVel(t_Marduk);
  77.                 v_MardukVel = VectorScale(v_MardukVel, 0.2);
  78.                 v_TrailVel = GetThingVel(t_Trail);
  79.                 v_TrailVel = VectorAdd(v_MardukVel, v_TrailVel);
  80.                 SetThingVel(t_Trail, v_TrailVel);
  81.             }
  82.  
  83.             v_TrailPos = GetThingJointPos(t_Marduk, n_leftnode);
  84.             v_TrailPos = VectorSet(VectorX(v_TrailPos), VectorY(v_TrailPos), VectorZ(v_TrailPos) - 0.03);
  85.             t_Trail = CreateThingAtPos(tpl_MardukTrail, FindNewSectorFromThing(t_Marduk, v_TrailPos), v_TrailPos, '0 0 0');
  86.             if (t_Trail != -1)
  87.             {
  88.                 SetThingVel(t_Trail, v_TrailVel);
  89.             }
  90.             v_TrailPos = GetThingJointPos(t_Marduk, n_rightnode);
  91.             v_TrailPos = VectorSet(VectorX(v_TrailPos), VectorY(v_TrailPos), VectorZ(v_TrailPos) - 0.03);
  92.             t_Trail = CreateThingAtPos(tpl_MardukTrail, FindNewSectorFromThing(t_Marduk, v_TrailPos), v_TrailPos, '0 0 0');
  93.             if (t_Trail != -1)
  94.             {
  95.                 SetThingVel(t_Trail, v_TrailVel);
  96.             }
  97.         }
  98.  
  99.         SetTimerEX(MARDUK_TRAIL_DELAY, TIMER_ID_MARDUK_TRAIL, t_Marduk, 0);
  100.     }
  101.  
  102.     return;
  103.  
  104.  
  105. # ...................................................................
  106.  
  107.  
  108. # ...................................................................
  109.  
  110. # ===================================================================
  111. #    Subroutines
  112. # ===================================================================
  113.  
  114. # ...................................................................
  115.  
  116.  
  117. end
  118.  
  119.